package Work;

import java.util.ArrayList;
import java.util.Scanner;

/*          管理员功能           */
/*    对图书管理员信息的增删改查    */


public class ChangeLibrarian {

	// 增加管理员
	public void insert(ArrayList<Librarian> list, Jdbc db) {
		String str1, str2, str3 = null, s = "";
		double d;
		int c;
		Scanner sc = new Scanner(System.in);
		while (true) {
			Librarian librarian = new Librarian();
			System.out.println("请输入您要添加的图书管理员的“姓名”:");
			str1 = sc.next();
			librarian.setName(str1);
			System.out.println("请输入您要添加的图书管理员的“电话”:");
			str2 = sc.next();
			librarian.setNumber(str2);
			System.out.println(librarian.toString());
			list.add(librarian);
			db.sql("insert into librarian (l_name, l_number) " + "value ('" + str1 + "', '" + str2 + "')");
			db.record("创建图书管理员信息", str1, "创建成功");// 写入记录表格，可删

			System.out.println("输入-1退出增加图书管理员(输入其他内容则继续添加):");
			str1 = sc.next();
			if (str1.equals("-1")) {
				return;
			}
		}
	}
	
	//删除
    public void delete(ArrayList<Librarian> list, Jdbc db){
        int c;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要删除的管理员编号（若取消操作请输入-1）：");
        c = sc.nextInt();
        if(c == -1) {
        	System.out.println("取消删除！");
        }else {
        	db.sql("delete from librarian where l_id = " +c);
        	System.out.println("编号为“"+c+"”的图书管理员信息删除成功!");
        }
    }
	
	
	//修改
    public void change(ArrayList<Librarian> list, Jdbc db){
        int c;
        String str;
        String id;//记录修改信息
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入待修改图书管理员的“编号”：");
        id = sc.next();
        System.out.println("请选择要修改图书管理员的：\n1.姓名\n2.电话\n（取消操作请按-1）");
        c = sc.nextInt();
        if(c == 1) {
        	System.out.println("请输入待修改图书管理员新的“姓名”：");
            str = sc.next();
            db.sql("update librarian set l_name = '" + str + "' where l_id = '" + Integer.parseInt(id) + "'");
        }else if(c == 2) {
        	System.out.println("请输入待修改书籍新的“电话”：");
            str = sc.next();
            db.sql("update librarian set l_number = '" + str + "' where l_id = '" + Integer.parseInt(id) + "'");
        }else {
            System.out.println("已经取消修改！");
        }
 
    }
	
	//查询书图书管理员信息
    public void search(ArrayList<Librarian> list, Jdbc db){
        Scanner sc = new Scanner(System.in);
        PrintList printlist = new PrintList();
        int i;
        while(true){
            System.out.println("\n请输入您想要查询的管理员信息表中哪种信息？\n1.管理员编号\n2.管理员姓名\n3.管理员电话\n(输入“-1”退出查询系统):");
            i = sc.nextInt();
            if(i == -1){//用户退出
                return;
            }
            else{
            	ArrayList<Librarian> librarian = db.findLibrarian(i);
            	if(librarian == null) {
            		System.out.println("您输入的信息不存在,请重新输入。");
            	}
            	else{
            		//System.out.println(librarian.toString());
            		printlist.printlibrarianList(librarian);
            	}
            }
        }
 
    }
	/*//通过id或者姓名或电话或学院查询图书管理员
    public void search(ArrayList<Librarian> list, Jdbc db){
        Scanner sc = new Scanner(System.in);
        String str;
        //,demoStr;//demoStr用于记录要操作的图书编号
 
        while(true){
            System.out.println("\n\n请输入您想要查询的图书管理员的“编号”或“姓名”或“电话”或“学院”(输入“-1”退出查询系统):");
            str=sc.next();
            //boolean flag = false;//未查询到标志
            if(str.equals("-1")){//用户退出
                return;
            }
            else{
            	Librarian librarian= db.findLibrarian(str, list);
            	if(librarian == null) {
            		System.out.println("您输入的图书管理员的“编号”或“姓名”或“电话”或“学院” ‘" + str + "’ 不存在,请重新输入。");
            	}
            	else{
            		System.out.println(librarian.toString());
            		//break;
            	}
            }
        }
    }*/
	
    //读取数据库文件，生成管理员信息表
    public ArrayList<Librarian> read(Jdbc db){
        ArrayList<Librarian> list = null;
        //初始化Book类的count和idCount
        //Book.setCount();
        try{
            list=db.searchLibrarian();
 
            System.out.println("读取数据成功");
            return list;
        }catch (Exception e){
            e.printStackTrace();
        }
        return list;
    }
    
    //打印完整管理员信息表
    public void printList(Jdbc db){
        ArrayList<Librarian> list = db.searchLibrarian();
        System.out.println("\n\n《管理员信息列表》\n");
        System.out.println("ID\t\t\tName\t\t\tNumber");
        //遍历列表，并打印对应属性
        for(Librarian librarian:list){
            System.out.println(librarian.getID()+"\t"+librarian.getName()+"\t\t\t"
                    +librarian.getNumber()+"\t\t\t\t");
        }
    }
    
}
